import {
	ajax
} from "../../utils/request.js";

// 获取保单列表函数
const jieDanList = (params = {}) => {
  return ajax('/api/dixiu/acceptorder', "POST", params);
}

// 完成保单列表函数
const wancheng = (params = {}) => {
  return ajax('/api/dixiu/successorder', "POST", params);
}

// 重新报修保单列表函数
const Repair = (params = {}) => {
  return ajax('/api/dixiu/again', "POST", params);
}

// 评价保单列表函数
const appraise = (params = {}) => {
  return ajax('/api/dixiu/evaluate', "POST", params);
}

// 封装评价工单函数
function evaluateTicket(orderId,rateValue,selectedTags,comment) {
  return new Promise((resolve, reject) => {
	let newselectedTags = selectedTags.toString();
    console.log(`工单ID: ${orderId} 星级：${rateValue} 选择的评价：${newselectedTags} 具体评价： ${comment}`);
   
    appraise({ 
      workorderorderId: orderId,
	  evaluateDetails : newselectedTags,
	  starLevel : rateValue,
	  evaluatetext : comment
    }).then(res => {
      console.log('评价工单接口调用成功:', res);
      resolve(res);
    }).catch(err => {
      console.error('评价工单接口调用失败:', err);
      reject(err);
    });
  });
}

// 封装重新维修函数
function repairTicket(orderId,repairReason) {
  return new Promise((resolve, reject) => {
    console.log(`工单ID: ${orderId},描述：${repairReason}`,);
    
    Repair({ 
      workorderorderId: orderId,
	   text: repairReason
    }).then(res => {
      console.log('重新维修接口调用成功:', res);
      resolve(res);
    }).catch(err => {
      console.error('重新维修接口调用失败:', err);
      reject(err);
    });
  });
}

// 封装接单函数（接收工单ID参数）
function getjieDanList(orderId) {
  return new Promise((resolve, reject) => {
	  console.log(orderId+"工单ID")
    
    jieDanList({ workorderorderId: orderId }).then(res => {
      console.log('接单成功:', res);
      resolve(res);
    }).catch(err => {
      console.error('接单失败:', err);
      reject(err);
    });
  });
}

// 封装完成函数
function completeTicket(orderId, imageUrls,completeDesc) { // 新增imageUrls参数接收图片数组
  return new Promise((resolve, reject) => {
    console.log(`工单ID: ${orderId}, 图片地址:`, imageUrls);
    // 调用正确的接口（根据业务逻辑确定是jieDanList还是sahnchuang，这里假设是jieDanList）
    wancheng({ 
      workorderorderId: orderId, 
      successImage: imageUrls, // 按照后端要求的参数名传递图片数组
	  text: completeDesc
    }).then(res => {
      console.log('完成工单接口调用成功:', res);
      resolve(res);
    }).catch(err => {
      console.error('完成工单接口调用失败:', err);
      reject(err);
    });
  });
}

// 封装上传图片函数
function uploadImage(tempFilePath) { 
  // 先校验临时路径是否存在
  if (!tempFilePath) {
    return Promise.reject(new Error('上传失败：临时文件路径不存在（tempFilePath is undefined）'));
  }
  
  return new Promise((resolve, reject) => {
    uni.uploadFile({
      url: 'https://api.flowergk.com/api/dixiu/upload', // 补全完整域名（避免相对路径问题）
      filePath: tempFilePath, // 修正为单数 filePath
      name: 'signatureImage', // 与后端参数名保持一致
      header: {
        'Authorization': uni.getStorageSync('token') // 若需要登录态，添加token
      },
      success: (res) => {
        // 处理响应（注意：res.data 是字符串，需解析为JSON）
        if (res.statusCode !== 200) {
          return reject(new Error(`上传失败：HTTP状态码${res.statusCode}`));
        }
        try {
          const data = JSON.parse(res.data);
          console.log('图片上传成功:', data);
          resolve(data);
        } catch (e) {
          reject(new Error('上传失败：后端返回格式错误'));
        }
      },
      fail: (err) => {
        console.error('图片上传失败:', err);
        reject(err);
      }
    });
  });
}

export {
	getjieDanList,
	completeTicket,
	repairTicket,
	evaluateTicket,
	uploadImage
}